// 引入 Vue 用于创建 Vue 应用实例
import Vue from "vue";
// 引入 Confirm 组件
import ConfirmComponents from "./index.vue";

// 定义一个异步函数 Confirm
let Confirm = async function (config) {

  // 创建一个 Vue 应用实例，并挂载到新创建的 div 上
  let layerConfirmEl = new Vue(ConfirmComponents).$mount();
  // 设置 Confirm 组件的配置
  layerConfirmEl.config = config;

  // 展示组件
  await layerConfirmEl.open();

  // 返回点击确认或取消的 Promise
  return new Promise((resolve, reject) => {
    layerConfirmEl.$on("confirm", (res) => {
      resolve(res);
    });
    layerConfirmEl.$on("cancel", (res) => {
      reject(res);
    })
  })
};

// 导出一个对象，包含 install 方法，用于在 Vue 应用中安装这个 Confirm 功能
export default {
  install(Vue) {
    Vue.prototype.$atConfirm = Confirm;
  },
};
